home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / appbar4 / appbar.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1997-06-11  |  6.1 KB  |  151 lines

  1. VERSION 4.00
  2. Begin VB.Form frmAppBar 
  3.    BorderStyle     =   0  'None
  4.    ClientHeight    =   3195
  5.    ClientLeft      =   1515
  6.    ClientTop       =   1515
  7.    ClientWidth     =   4680
  8.    ControlBox      =   0   'False
  9.    Height          =   3600
  10.    Left            =   1455
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   3195
  15.    ScaleWidth      =   4680
  16.    ShowInTaskbar   =   0   'False
  17.    Top             =   1170
  18.    Width           =   4800
  19.    Begin VB.Timer tmrHide 
  20.       Interval        =   1
  21.       Left            =   720
  22.       Top             =   1440
  23.    End
  24.    Begin VB.PictureBox picFrame 
  25.       BorderStyle     =   0  'None
  26.       Height          =   495
  27.       Left            =   1800
  28.       ScaleHeight     =   495
  29.       ScaleWidth      =   1215
  30.       TabIndex        =   0
  31.       Top             =   1320
  32.       Width           =   1215
  33.    End
  34. Attribute VB_Name = "frmAppBar"
  35. Attribute VB_Creatable = False
  36. Attribute VB_Exposed = False
  37. Option Explicit
  38. Dim BarData As APPBARDATA
  39. Dim bAutoHide As Boolean
  40. Dim bAnimate As Boolean
  41. Private Sub Form_Load()
  42.     Dim lResult As Long
  43.     Move 0, 0, 0, 0
  44.     Screen.MousePointer = vbDefault
  45.     bAutoHide = True
  46.     bAnimate = True
  47.     BarData.cbSize = Len(BarData)
  48.     BarData.hwnd = hwnd
  49.     BarData.uCallbackMessage = WM_MOUSEMOVE
  50.     lResult = SHAppBarMessage(ABM_NEW, BarData)
  51.     lResult = SetRect(BarData.rc, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN))
  52.     BarData.uEdge = ABE_TOP
  53.     lResult = SHAppBarMessage(ABM_QUERYPOS, BarData)
  54.     If bAutoHide Then
  55.         BarData.rc.Bottom = BarData.rc.Top + 2 'tbrToolBar.Bands("ToolBar").Height + 6
  56.         lResult = SHAppBarMessage(ABM_SETPOS, BarData)
  57.         BarData.lParam = True
  58.         lResult = SHAppBarMessage(ABM_SETAUTOHIDEBAR, BarData)
  59.         If lResult = 0 Then
  60.             bAutoHide = False
  61.         Else
  62.             lResult = SetWindowPos(BarData.hwnd, HWND_TOP, BarData.rc.Left, BarData.rc.Top - 42, BarData.rc.Right - BarData.rc.Left, 44, SWP_NOACTIVATE)
  63.         End If
  64.     End If
  65.     If Not bAutoHide Then
  66.         BarData.rc.Bottom = BarData.rc.Top + 42
  67.         lResult = SHAppBarMessage(ABM_SETPOS, BarData)
  68.         lResult = SetWindowPos(BarData.hwnd, HWND_TOP, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 42, SWP_NOACTIVATE)
  69.     End If
  70. End Sub
  71. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  72.     Static bRecieved As Boolean
  73.     Dim lResult As Long
  74.     Dim newRC As RECT
  75.     Dim lMessage As Long
  76.     lMessage = x / Screen.TwipsPerPixelX
  77.     If bRecieved = False Then
  78.         bRecieved = True
  79.         Select Case lMessage
  80.             Case WM_ACTIVATE
  81.                 lResult = SHAppBarMessage(ABM_ACTIVATE, BarData)
  82.             Case WM_WINDOWPOSCHANGED
  83.                 lResult = SHAppBarMessage(ABM_WINDOWPOSCHANGED, BarData)
  84.             Case ABN_STATECHANGE
  85.                 lResult = SetRect(BarData.rc, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN))
  86.                 BarData.uEdge = ABE_TOP
  87.                 lResult = SHAppBarMessage(ABM_QUERYPOS, BarData)
  88.                 If bAutoHide Then
  89.                     BarData.rc.Bottom = BarData.rc.Top + 2
  90.                     lResult = SHAppBarMessage(ABM_SETPOS, BarData)
  91.                     BarData.lParam = True
  92.                     lResult = SHAppBarMessage(ABM_SETAUTOHIDEBAR, BarData)
  93.                     If lResult = 0 Then
  94.                         bAutoHide = False
  95.                     Else
  96.                         lResult = SetWindowPos(BarData.hwnd, HWND_TOP, BarData.rc.Left, BarData.rc.Top - 42, BarData.rc.Right - BarData.rc.Left, 44, SWP_NOACTIVATE)
  97.                     End If
  98.                 End If
  99.                 If Not bAutoHide Then
  100.                     BarData.rc.Bottom = BarData.rc.Top + 42
  101.                     lResult = SHAppBarMessage(ABM_SETPOS, BarData)
  102.                     lResult = SetWindowPos(BarData.hwnd, HWND_TOP, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 42, SWP_NOACTIVATE)
  103.                 End If
  104.             Case ABN_FULLSCREENAPP
  105.                 Beep
  106.         End Select
  107.         bRecieved = False
  108.     End If
  109. End Sub
  110. Private Sub Form_Resize()
  111.     picFrame.Move 0, 0, Width, Height
  112. End Sub
  113. Private Sub Form_Unload(Cancel As Integer)
  114.     If BarData.hwnd <> 0 Then SHAppBarMessage ABM_REMOVE, BarData
  115. End Sub
  116. Private Sub picFrame_DblClick()
  117.     Unload Me
  118. End Sub
  119. Private Sub picFrame_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  120.     Dim lResult As Long
  121.     Dim iCounter As Integer
  122.     If Top < 0 Then
  123.         If bAnimate Then
  124.             For iCounter = -36 To -1
  125.                 BarData.rc.Top = iCounter
  126.                 lResult = SetWindowPos(BarData.hwnd, 0&, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 42, SWP_NOACTIVATE)
  127.             Next
  128.         End If
  129.         BarData.rc.Top = 0
  130.         lResult = SetWindowPos(BarData.hwnd, HWND_TOPMOST, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 42, SWP_SHOWWINDOW)
  131.         tmrHide.Enabled = True
  132.     End If
  133. End Sub
  134. Private Sub tmrHide_Timer()
  135.     Dim lResult As Long
  136.     Dim lpPoint As POINTAPI
  137.     Dim iCounter As Integer
  138.     lResult = GetCursorPos(lpPoint)
  139.     If lpPoint.x < Left \ Screen.TwipsPerPixelX Or lpPoint.x > (Left + Width) \ Screen.TwipsPerPixelX Or lpPoint.y < Top \ Screen.TwipsPerPixelY Or lpPoint.y - 10 > (Top + Height) \ Screen.TwipsPerPixelY Then
  140.         If bAnimate Then
  141.             For iCounter = -1 To -37 Step -1
  142.                 BarData.rc.Top = iCounter
  143.                 lResult = SetWindowPos(BarData.hwnd, 0&, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 42, SWP_NOACTIVATE)
  144.             Next
  145.         End If
  146.         BarData.rc.Top = -42
  147.         lResult = SetWindowPos(BarData.hwnd, HWND_TOPMOST, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 44, SWP_NOACTIVATE)
  148.         tmrHide.Enabled = False
  149.     End If
  150. End Sub
  151.